imx7: imx7_clock: uart: Add UART clock init logic
authorBryan O'Donoghue <[email protected]>
Fri, 8 Jun 2018 12:16:29 +0000 (13:16 +0100)
committerBryan O'Donoghue <[email protected]>
Tue, 4 Sep 2018 12:36:23 +0000 (13:36 +0100)
This patch adds an internal UART init routine that gets called from the
external facing clock init function.

In the first pass this call does an explicit disable of all UART
clock-gates. Later changes will enable only the UART clock-gates we care
about.

Signed-off-by: Bryan O'Donoghue <[email protected]>
plat/imx/common/imx7_clock.c [new file with mode: 0644]

diff --git a/plat/imx/common/imx7_clock.c b/plat/imx/common/imx7_clock.c
new file mode 100644 (file)
index 0000000..ce43a02
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+#include <imx_regs.h>
+#include <imx_clock.h>
+
+static void imx7_clock_uart_init(void)
+{
+       unsigned int i;
+
+       for (i = 0; i < MXC_MAX_UART_NUM; i++)
+               imx_clock_disable_uart(i);
+}
+
+void imx_clock_init(void)
+{
+       /*
+        * The BootROM hands off to the next stage with the internal 24 MHz XTAL
+        * crystal already clocking the main PLL, which is very handy.
+        * Here we should enable whichever peripherals are required for ATF and
+        * OPTEE.
+        *
+        * Subsequent stages in the boot process such as u-boot and Linux
+        * already have a significant and mature code-base around clocks, so our
+        * objective should be to enable what we need for ATF/OPTEE without
+        * breaking any existing upstream code in Linux and u-boot.
+        */
+
+       /* Initialize UART clocks */
+       imx7_clock_uart_init();
+}